// page.tsx (간단한 Promise 생성과 로그인 처리) import * as React from "react" import { type SearchParams } from "@/types/table" import { getValidFilters } from "@/lib/data-table" import { Skeleton } from "@/components/ui/skeleton" import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" import { Shell } from "@/components/shell" import { searchParamsShipDocuCache } from "@/lib/vendor-document-list/validations" import { getServerSession } from "next-auth" import { authOptions } from "@/app/api/auth/[...nextauth]/route" import Link from "next/link" import { Button } from "@/components/ui/button" import { LogIn } from "lucide-react" import { getUserVendorDocumentStats, getUserVendorDocumentStatsAll, getUserVendorDocuments, getUserVendorDocumentsAll } from "@/lib/vendor-document-list/enhanced-document-service" import { UserVendorDocumentDisplay } from "@/components/ship-vendor-document/user-vendor-document-table-container" import { InformationButton } from "@/components/information/information-button" import { UserVendorALLDocumentDisplay } from "@/components/ship-vendor-document-all/user-vendor-document-table-container" interface IndexPageProps { searchParams: Promise } export default async function IndexPage(props: IndexPageProps) { const searchParams = await props.searchParams const search = searchParamsShipDocuCache.parse(searchParams) const validFilters = getValidFilters(search.filters) // Get session const session = await getServerSession(authOptions) // Check if user is logged in if (!session || !session.user) { return (

문서 관리

{/*

소속 회사의 모든 도서/도면을 확인하고 관리합니다.

*/}

로그인이 필요합니다

문서를 확인하려면 먼저 로그인하세요.

) } // User is logged in, get user ID const requesterId = session.user.id ? Number(session.user.id) : null if (!requesterId) { return (

Document Management

계정 오류

사용자 정보가 올바르게 설정되지 않았습니다. 관리자에게 문의하세요.

) } // 검색 파라미터 정리 const searchInput = { ...search, filters: validFilters, } // Promise 생성 (모든 데이터를 페이지에서 처리) const documentsPromise = getUserVendorDocumentsAll(requesterId, searchInput) const statsPromise = getUserVendorDocumentStatsAll(requesterId) // Promise.all로 감싸서 전달 const allPromises = Promise.all([documentsPromise, statsPromise]) const statsResult = await documentsPromise return (

조선 Document Management

}> {/* DateRangePicker can go here */} } >
) }